package Panel;

import java.util.Date;
import java.util.Observable;
import java.util.Observer;

import javax.swing.JLabel;
import javax.swing.JPanel;

import Flight.Flight;

public abstract class Panel extends JPanel{

	private static final long serialVersionUID = -1863238179433313055L;
	// Declaración generica de una lista
	protected String nombrePanel;
	protected JLabel titlePanel;
	
	public Panel(String pnombrePanel){
		this.nombrePanel = pnombrePanel;
		// Instanciamos la lista como una lista enlazada
		this.titlePanel = new JLabel(this.nombrePanel + "  " + (new Date().toString()));

		Reloj r = new Reloj();
		r.addObserver(new Observer()
        {
            public void update (Observable unObservable, Object dato)
            {
            	changeDate(new Date());
            }
        });
	}
	
	
	protected abstract void update(Flight vuelo);
	protected abstract void remove(Flight vuelo);
	protected abstract void repaintVuelos(String message);

	
	public void changeDate(Date h){
		this.titlePanel.setText(this.nombrePanel + "  " + (new Date().toString()));
	}
	
	// Get y Set de la clase Panel
	public void setNombrePanel(String nombrePanel) {
		this.nombrePanel = nombrePanel;
	}
	public String getNombrePanel() {
		return nombrePanel;
	}
	// Fin Get y Set de la clase Panel.
}
